package cn.smxy.admin.service;

import cn.smxy.param.FamilyFuzzyParam;
import cn.smxy.param.PageParam;
import cn.smxy.pojo.Category;
import cn.smxy.pojo.PlantFamily;
import cn.smxy.util.R;

public interface CategoryService {
    /**
     * 添加种群
     * @param category
     * @return
     */
    R add(Category category);

    /**
     * 分页展示种群
     * @param pageParam
     * @return
     */
    R page(PageParam pageParam);

    /**
     * 修改种群
     * @param category
     * @return
     */
    R update(Category category);

    /**
     * 删除种群
     * @param categoryId
     * @return
     */
    R remove(Long categoryId);

    /**
     * 返回种群对应科名列表
     * @param categoryId
     * @return
     */
    R show(Long categoryId);

    /**
     * 按条件分页查询科属
     * @param familyFuzzyParam 种群id 科属id 分页参数 模糊查询科属名
     * @return
     */
    R fuzzy(FamilyFuzzyParam familyFuzzyParam);

    /**
     * 删除科属
     * @param familyId
     * @return
     */
    R familyRemove(Long familyId);

    /**
     * 添加科名
     * @param plantFamily
     * @return
     */
    R addFamily(PlantFamily plantFamily);

    /**
     * 添加属名
     * @param plantFamily
     * @return
     */
    R addGenus(PlantFamily plantFamily);

    /**
     * 返回属名列表
     * @param familyId
     * @return
     */
    R genusShow(Long familyId);
}
